Internet technology is, and has been for years, a rapidly developed field, particularly in the area of network optimization for improving the end-user browsing experience. In computer networks, a proxy server is a server (a computer system or an application program) which services the requests of its clients (e.g. request for a web page, connection establishment, etc.) by forwarding the requests to other servers, typically web servers.
An existing technology for network optimization utilizes a split proxy having two programs—a local proxy and a remote proxy. While the local proxy is connected to a host via a LAN (Local Area Network) connection; the remote proxy communicates with a web server via a WAN (Wide Area Network) connection that is slower than the LAN connection. Since the local proxy and the remote proxy are effectively two parts of the same program, these two proxies can communicate with each other in a more efficient way than they can communicate with a more standard resource or tool, such as a website or browser. This may be ideal for compressing data over a slow link, such as a wireless communication or a WAN (Wide Area Network) communication, as well as for improving the latency. Taking the example of web browsing, the user's browser is pointed to a local proxy, which then communicates with its corresponding remote proxy at some remote location. This remote server fetches the requisite data, repackages the data and sends it back to the user's local proxy. The local proxy then unpacks the data and presents it to the browser in the standard fashion.
Over the years the split proxy has been also used by Mobile Network Operators, thus opening the door for new solutions that will improve the internet browsing experience when using mobile handset devices as well. One common approach trying to overcome the bottleneck scenario when using a mobile handset includes implementing a local proxy as a software application running on the mobile handset in order to reduce the load on the mobile network between the mobile handset and the remote server.
However, since different mobile handsets may run on different operating systems, such implementation typically requires complex software integration. This software integration may prove even more complex when using mobile handsets that run on non-open operating systems.
It is with respect to these and other considerations that the present invention has been made.